package luj.game.robot.api.action;

public interface RobotCreateListener {

  interface Context {

    Worker robot();

    Boss boss();
  }

  interface Worker {

    void putData(Object data);

    Internal getInternal();
  }

  interface Boss {

    <P> CommandService<P> command(Class<? extends RobotBossCommand<P>> cmdType);
  }

  interface Internal {

    Network network();
  }

  interface Network {

    void receiveProto(String protoId, Object protoVal, Object param);
  }

  void onCreate(Context ctx);
}
